#include "at32f403a_407_board.h"
#include "at32f403a_407_clock.h"


void exint_Ukey_init(void)
{

  exint_init_type exint_init_struct;

  crm_periph_clock_enable(CRM_IOMUX_PERIPH_CLOCK, TRUE); //1.外设复用输入时钟，将管角作为外部中断使用
  crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE); //在按键初始化了

  // 2.外部中断的内部配置
  // 中断线连接哪个GPIO口

  gpio_exint_line_config(GPIO_PORT_SOURCE_GPIOA, GPIO_PINS_SOURCE0); //PA0就是按键的线

  exint_default_para_init(&exint_init_struct);
  exint_init_struct.line_enable = TRUE;
  exint_init_struct.line_mode = EXINT_LINE_INTERRUPUT;  
  exint_init_struct.line_select = EXINT_LINE_0;
  exint_init_struct.line_polarity = EXINT_TRIGGER_RISING_EDGE; //0-1 上升沿
  exint_init(&exint_init_struct); 

  //3.中断优先级配置
  //ques:分组 irq里面几个参数设置的要求？
  nvic_priority_group_config(NVIC_PRIORITY_GROUP_4);
  nvic_irq_enable(EXINT0_IRQn, 0, 0); //4.使能中断  1 0
  // 5. 编写中断服务函数
}

/**
  * @brief  main function.
  * @param  none
  * @retval none
  */

/**
  * @}
  */

/**
  * @}
  */
